为应用打造更好的无障碍体验
https://developer.android.google.cn/guide/topics/ui/accessibility/principles
提升文字显示效果
对于应用中的每组文字,建议将色彩对比度 (即文字颜色与文字后面的背景颜色之间感知到的亮度差异) 设为高于特定阈值。确切阈值取决于文字的字体大小以及文字是否以粗体显示:
如果文字小于 18pt,或者如果文字为粗体且小于 14pt,则色彩对比度应至少为 4.5:1。
对于其他所有文字,色彩对比度应至少为 3.0:1。
足够高的色彩对比度 (右图)
如需查看应用中文字与背景的色彩对比度,请使用在线色彩对比度检查工具或无障碍功能扫描仪应用:
https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.auditor
使用简单的大型控件
为使给定界面元素的触摸目标足够大,应同时满足以下两个条件:
android:paddingLeft、android:minWidth 和 android:paddingRight 的值的总和应大于或等于 48dp。 android:paddingTop、android:minHeight 和 android:paddingBottom 的值的总和应大于或等于 48dp。
android:paddingLeft
https://developer.android.google.cn/reference/android/view/View#attr_android:paddingLeftandroid:minWidth
https://developer.android.google.cn/reference/android/view/View#attr_android:minWidthandroid:paddingRight
https://developer.android.google.cn/reference/android/view/View#attr_android:paddingRightandroid:paddingTop
https://developer.android.google.cn/reference/android/view/View#attr_android:paddingTopandroid:minHeight
https://developer.android.google.cn/reference/android/view/View#attr_android:minHeightandroid:paddingBottom
https://developer.android.google.cn/reference/android/view/View#attr_android:paddingBottom
<ImageButton ...
android:paddingLeft="4dp"
android:minWidth="40dp"
android:paddingRight="4dp"
android:paddingTop="8dp"
android:minHeight="32dp"
android:paddingBottom="8dp" />
描述每个界面元素
<!-- Use string resources for easier localization. -->
<!-- The en-US value for the following string is "Inspect". -->
<ImageView
...
android:contentDescription="@string/inspect" />
TextView
https://developer.android.google.cn/reference/android/widget/TextView
请勿将界面元素的类型包含在内容说明中。屏幕阅读器会自动读出元素的说明和类型。例如,如果选择某个按钮会导致应用中发生 "提交" 操作,则该按钮的说明应为 "Submit",而非 "Submit button"。 每条说明都应该是独一无二的。这样,当屏幕阅读器用户遇到重复的元素说明时,他们便能正确地识别出焦点现在位于之前已聚焦的元素上。特别是,视图组中的每一项 (如 RecyclerView) 都应具有不同的说明。每条说明都应反映给定项所特有的内容,如位置列表中某个城市的名称。 如果界面包含仅用于装饰效果的图形元素,请将其说明设为 "@null"。如果应用的 minSdkVersion 为 16 或更高版本,您可以改为将这些图形元素的 android:importantForAccessibility 属性设为 "no"。
RecyclerView
https://developer.android.google.cn/reference/androidx/recyclerview/widget/RecyclerViewandroid:importantForAccessibility
https://developer.android.google.cn/reference/android/view/View#attr_android:importantForAccessibility
其他资源
Codelab: Android 无障碍功能入门 https://codelabs.developers.google.com/codelabs/starting-android-accessibility 博文: 无障碍功能: 是否所有用户都能使用您的应用? https://android-developers.googleblog.com/2012/04/accessibility-are-you-serving-all-your.html
推荐阅读